package Boot.test.Utils;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.ObjectMetadata;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class OssFile {
    // 由于oss收费情况过于高，取消oss文件传输的设想，改用文件服务器存储。
    // 由于没有完成域名备案,暂时无法正常使用
    // Endpoint以杭州为例，其它Region请按实际情况填写。
    String endpoint = "";
    // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
    String accessKeyId = "";
    String accessKeySecret = "";
    String bucketName = "";  // 获取oss中要上传Bucket名称
    // RAM用户的访问密钥（AccessKey ID和AccessKey Secret）。
    //    上传文件
    public void UploadFile() {
        // 获取类
        OSS ossClient = new OSSClientBuilder().build(endpoint,
                accessKeyId, accessKeySecret);
        try {
            FileInputStream content = new FileInputStream("D:\\BaiduNetdiskDownload\\11.jpg");
            String objectName = "4.png";
            // 创建上传文件的元信息，可以通过文件元信息设置HTTP header。
            ObjectMetadata meta = new ObjectMetadata();
            // 指定上传的内容类型。内容类型决定浏览器将以什么形式、什么编码读取文件。如果没有指定则根据文件的扩展名生成，如果没有扩展名则为默认值application/octet-stream。
            meta.setContentType("image/png"); // 固定,由于现在上传的类型都是
            meta.setContentDisposition("inline");
            ossClient.putObject(bucketName, objectName, content, meta);
        } catch (OSSException e) {
            System.out.println("上传图片错误");
        } catch (ClientException e) {
            System.out.println("上传图片错误");
        } catch (FileNotFoundException e) {
            System.out.println("上传图片错误");
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }


}
